home *** CD-ROM | disk | FTP | other *** search
/ Aminet 20 / Aminet 20 (1997)(GTI - Schatztruhe)[!][Aug 1997].iso / Aminet / comm / www / HTP.lha / HTP / source / option.h < prev    next >
C/C++ Source or Header  |  1997-06-21  |  3KB  |  78 lines

  1. /*
  2. //
  3. // option.h
  4. //
  5. // Program options and setting
  6. //
  7. // Copyright (c) 1995-96 Jim Nelson.  Permission to distribute
  8. // granted by the author.  No warranties are made on the fitness of this
  9. // source code.
  10. // Amiga version - 1997 - Geert Bevin
  11. //
  12. */
  13.  
  14. #ifndef OPTION_H
  15. #define OPTION_H
  16.  
  17. #include <exec/types.h>
  18.  
  19. /* option names */
  20. extern const char *OPT_N_IMGXY;
  21. extern const char *OPT_N_QUIET;
  22. extern const char *OPT_N_DEPEND;
  23. extern const char *OPT_N_PRECIOUS;
  24. extern const char *OPT_N_CONDENSE;
  25. extern const char *OPT_N_USAGE;
  26. extern const char *OPT_N_SET_DELIM;
  27. extern const char *OPT_N_KEEP_TEMP;
  28.  
  29. /* pre-defined option values (for boolean options) */
  30. extern const char *OPT_V_TRUE;
  31. extern const char *OPT_V_FALSE;
  32.  
  33. /* OPT_N_SET_DELIM values */
  34. extern const char *OPT_V_DELIM_HTML;
  35. extern const char *OPT_V_DELIM_SQUARE;
  36. extern const char *OPT_V_DELIM_CURLY;
  37.  
  38. /* option callback ... name will be one of OPT_N_* and value OPT_V_* */
  39. /* can be used to take additional actions when an option is set */
  40. /* name will be NULL if an error occured parsing text, and value will */
  41. /* be the text that caused the problem */
  42. typedef BOOL (*OPTION_CALLBACK)(const char *name, const char *value,
  43.     ULONG userParam);
  44.  
  45. /* these are used at the beginning and end of program execution, respectively */
  46. BOOL InitializeGlobalOption(OPTION_CALLBACK optionCallback, ULONG userParam);
  47. void DestroyGlobalOption(void);
  48.  
  49. /* these are used at the beginning and end of local context, that is, as a new */
  50. /* file is being created and completed */
  51. BOOL InitializeLocalOption(void);
  52. void DestroyLocalOption(void);
  53.  
  54. /* parse text or markups for options ... global setting dictates whether to */
  55. /* use current context or default to global option settings */
  56. BOOL ParseTextOption(const char *string, OPTION_CALLBACK optionCallback,
  57.     ULONG userParam);
  58. BOOL ParseMarkupOption(const HTML_MARKUP *htmlMarkup, OPTION_CALLBACK optionCallback,
  59.     ULONG userParam);
  60.  
  61. /* retrieve option information ... IsOptionEnabled() doesnt mean much for */
  62. /* options that require values rather than boolean states, and for boolean */
  63. /* options, GetOption() returns OPT_V_TRUE or OPT_V_FALSE */
  64. BOOL IsOptionEnabled(const char *option);
  65. const char *GetOptionValue(const char *option);
  66.  
  67. /* macros for quick lookups */
  68. #define IMGXY               (IsOptionEnabled(OPT_N_IMGXY))
  69. #define QUIET               (IsOptionEnabled(OPT_N_QUIET))
  70. #define DEPEND              (IsOptionEnabled(OPT_N_DEPEND))
  71. #define PRECIOUS            (IsOptionEnabled(OPT_N_PRECIOUS))
  72. #define CONDENSE            (IsOptionEnabled(OPT_N_CONDENSE))
  73. #define USAGE               (IsOptionEnabled(OPT_N_USAGE))
  74. #define KEEPTEMP            (IsOptionEnabled(OPT_N_KEEP_TEMP))
  75.  
  76. #endif
  77.  
  78.